Acquisition of syndication feed items via an information workflow application

ABSTRACT

Syndication feed resources, such as those adhering to the Really Simply Syndication (RSS) protocol are accessed, and syndication feed items are acquired from syndication feeds that are available. The syndication feed items are converted to a format compatible with an electronic mail module of an information workflow application so that the converted syndication feed items may be handled by the information workflow application as if they are electronic mail messages. The converted syndicated feed items may be assigned an account within the information workflow application and be synchronized according to the synchronization schedule set forth and may be delivered to the location that is also set forth including a mail folder where electronic mail messages are also placed. Additionally, the converted syndicated feed items may be displayed in a window or preview pane, forwarded, flagged, handled according to user-defined and application-defined mail rules for electronic mail messages, etc.

BACKGROUND

Syndication feeds such as those provided under the Really SimplySyndication (RSS) 2.0 protocol provide users with new ways of monitoringweb-based information sources such as weblogs and general web sites.Such syndication feeds are easily subscribed to and as more syndicationfeeds become available, users are likely to subscribe to many differentfeeds. The unfortunate consequence of subscribing to many syndicationfeeds is that users experience information overload.

Conventionally, users either have a dedicated stand-alone applicationprogram for accessing and displaying syndication feed items or have aspecific add-in application module that accesses the syndication feedresources and delivers syndication feeds to a syndication feed folderthat is accessible via an information workflow application. Thededicated stand-alone application program or syndication feed moduleextracts each syndication feed item from the syndication feed, which istypically an extensible mark-up language file containing varioussyndication feed items, and delivers each syndication feed item to aparticular location from which it can be displayed. Each itemcorresponds to an update of the web-based information, such as a newentry in a weblog or a new headline on a website. Accordingly, the userviews the syndication feed items within the particular viewing window.

In addition to the syndication feed items, the user likely also has adaily information workflow application for sending and receivingelectronic mail messages. Access to the daily information workflowoccurs through an application such as OUTLOOK® 2003 information workflowapplication, from Microsoft Corporation of Redmond, Wash. In many casesas mentioned above, the information workflow application is entirelyseparate from the stand-alone syndication feed application program thatacquires the syndication feeds. Accordingly, in these cases the user isleft with utilizing different application programs in order to keeptrack of the different incoming streams of information, and this burdensthe user because it is not a single uniform manner of handling bothsyndication feed items and electronic mail messages.

Furthermore, even where the syndication feed items are obtained by asyndication feed module that delivers the feed items into foldersaccessible via the information workflow application, such as in theOutlook Edition from NewsGator Technologies, Inc. of Denver, Colo., theuser is still required to interact with the syndication feed moduleseparately from the management module of the information workflowapplication in order to configure the delivery location and schedule aswell as the handling of the syndication feeds. The user is furtherrequired to view the syndication feed items by accessing a locationwhere the feed items are delivered that is logically separate from thefolder where electronic mail messages are delivered. Thus, the user isstill burdened by use of such syndication feed modules that work inconjunction with an information workflow application.

SUMMARY

Syndication feeds are acquired by an information workflow applicationthat also acquires other information items such as electronic mailmessages for the user. Accordingly, the user may be given variousbenefits of having the syndication feeds acquired in this manner ratherthan relying on a separate management module or an altogether separateapplication program. For example, an account manager of the informationworkflow application may allow the user to configure the acquisition anddelivery of syndication feeds in the same manner as creating an accountfor acquiring and delivery electronic mail messages. As another example,a synchronization manager of the information workflow application mayautomatically retrieve the syndication feed items on a schedulespecified by the user and deliver those feeds to a folder within amessage store as also specified by the user. Such account andsynchronization management may allow for the user to specifyconfiguration options for the downloading and delivery of the items.Furthermore, user-defined and/or application-defined mail rules may beapplied to the syndication items as if they were electronic mailmessages and the syndication items may be placed into the same foldersas the regular electronic mail message items.

The syndication feed items are first acquired, such as in accordancewith user-defined configuration options, and are converted into a formatcompatible with an electronic mail user interface of the informationworkflow application. The converted syndication feed items may then behandled as if they were electronic mail messages by displaying them,placing them into folders such as the Inbox or in dedicated folders,and/or by applying at least one of user-defined and application-definedmail rules to further handle the message items as dictated by the user.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is an example of a computer system for acquiring syndicationfeeds using an information workflow application.

FIG. 2A is a diagram illustrating the relationships and sequence ofactivities of the components of an example of an information workflowapplication.

FIG. 2B is an example of an operational flow of the information workflowapplication in relation to the sequence of activities of FIG. 2A.

FIG. 3 is a diagram of one example of the internal component structureof an RSS provider of FIG. 2.

FIG. 4 is an illustrative screenshot showing a dialog box of an accountmanager of the example of the information workflow application thatreceives user input to define configuration options for a particular RSSsubscription.

FIG. 5 is an illustrative screenshot showing a dialog box of the accountmanager of the information workflow application that lists the RSSsubscriptions of the RSS Subscription account.

FIG. 6 is an illustrative screenshot showing a dialog box of the accountmanager of the information workflow application for selecting whether toinclude syndication feed sources in send/receive groups that areutilized by the synchronization manager.

FIG. 7 is an illustrative screenshot showing a rules wizard of theinformation workflow application to allow the user to define mail rulesfor automatically processing incoming mail items including electronicmail message items and syndication feed items that are converted to mailitems.

FIG. 8 is an illustrative screenshot showing contents of an Inbox folderand a preview pane of the example of an information workflow applicationwhere the inbox includes both electronic mail messages and syndicationfeed items.

DETAILED DESCRIPTION

Syndication feeds items are obtained and converted to a mail messageformat by an information workflow application. According to one or moreembodiments, the converted syndication feed items are then handled as ifthey were electronic mail messages within the information workflowapplication such as by displaying the converted syndication feed itemswithin a window or preview pane and placing the syndication feed item ina particular folder. The syndication feeds may be managed by an accountmanager of the information workflow application that is also used tomanage electronic mail message sources. Synchronization of thesyndication feed sources may be handled by a synchronization manager ofthe information workflow application that is also used to synchronizeelectronic mail message sources.

FIG. 1 shows an example of a computer system 100 that provides anoperating environment for the embodiments. The computer system 100 asshown may be a standard, general-purpose programmable computer system100 including a processor 101 as well as various components includingmass storage 104, memory 106, a display adapter 108, a network adapter110 , and one or more input devices 112. The processor 101 communicateswith each of the components through a data signaling bus 102. Thecomputer system 100 may alternatively be a hard-wired, applicationspecific device that implements one or more of the embodiments.

In the example, of FIG. 1, the processor 101 implements instructionsstored in the mass storage 104 in the form of an operating system 114and an information workflow application 116, for example, a MessagingApplication Programming Interface (MAPI)-compliant application such asan updated version of OUTLOOK® information workflow application fromMicrosoft Corp. of Redmond, Wash. In doing so, the processor 101provides data to a display adapter 108 that generated a display on adisplay screen. The display may include a graphical user interface thatallows the user of the computer system 100 to interact with windows anddialog boxes of the graphical user interface when managing electronicmail messages, syndication feed items, and other features provided bythe information workflow application program 116. The windows and dialogboxes include controls and data fields that allow the user to makeselections when handling electronic mail messages and syndication feeditems, and the user makes such selections and enters data through aninput device 112, such as a keyboard and/or mouse. Furthermore, theinformation workflow application 116 makes use of the network adapter110 to exchange data with remote computer systems, such as electronicmail message servers and syndication feed servers that allow theinformation workflow application 116 to send and receive electronicinformation.

The information workflow application 116 according to the illustrativeembodiments discussed herein includes various components as shown inFIG. 1. These components of this example include a user interface 118,an account manager 120, a synchronization manager 122, a protocolmanager 124, a sharing engine 126, an RSS provider 128, a messageprocessing component 130, and an electronic mail message store 132. Eachof these components is discussed in more detail below with reference toFIGS. 2A and 2B.

Computer system 100 typically includes a variety of computer readablemedia. Computer readable media can be any available media that can beaccessed by computer 100 and includes both volatile and nonvolatilemedia, removable and non-removable media. By way of example, and notlimitation, computer readable media may comprise computer storage mediaand communication media.

Computer storage media includes both volatile and nonvolatile, removableand non-removable media implemented in any method or technology forstorage of information such as computer readable instructions, datastructures, program modules or other data. Computer storage mediaincludes, but is not limited to, RAM, ROM, EEPROM, flash memory or othermemory technology, CD-ROM, digital versatile disks (DVD) or otheroptical disk storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the desired information and which can accessed bycomputer system 100.

Communication media typically embodies computer readable instructions,data structures, program modules or other data in a modulated datasignal such as a carrier wave or other transport mechanism and includesany information delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media includes wired media such as awired network or direct-wired connection, and wireless media such asacoustic, RF, infrared and other wireless media. Combinations of the anyof the above should also be included within the scope of computerreadable media.

FIG. 2A shows the components of the information workflow application 116and the sequence of the interactions between them in order to acquireboth electronic mail messages and syndication feed items and to placeboth within a common electronic mail message store. Initially, the userinteracts with the account manager 120 via the user interface 118 of theinformation workflow application 116 in order to configure theinformation workflow application 116 to provide for the acquisition andautomatic updating of the syndication feed items. Examples of thisinteraction are shown in FIGS. 4-6.

In FIG. 4, a dialog box 400 is displayed via the user interface 118 toallow the user to configure options for a particular RSS subscription.As shown, a field 402 allows the user to provide a name for thesubscription. The location such as a universal resource location (URL)404 has been provided by the user and specifies where the RSS feed ofthe subscription can be found. A delivery folder name 206 that may beprovided as a default and/or may be specified by the user and themessage store path 408 where the delivery folder is located is alsoshown. In this example, the user has chosen a custom folder name andthis folder is located within the message store where mail folders arealso located. The user can specify that the delivery folder is anexisting folder as well, including a folder where electronic mailmessages are also delivered such as an Inbox folder. A button 410provides the user with the option to change the delivery location forthe particular RSS subscription.

Additional configuration options are also provided in the dialog box400. Two download options are shown, including an option for selectingto have enclosures of the subscription be automatically downloaded atcheck box 412. As discussed below, the automatic downloading ofenclosures causes them to be converted to mail item attachments for theconverted feed item. Another option allows the user to select that thefull article be automatically downloaded and converted to an attachmentfor each syndication feed item at check box 414. The full article to bedownloaded may be any electronic document type, such as an hyper textmarkup language (HTML) document as indicated in FIG. 5, an image file, atext file, etc. The last option pertains to the update limit for theparticular subscription. The content provider may set an update intervallimit, also known as the time to live (ttl), so that the feed server isnot being bombarded with requests, and this update interval may beobtained from the feed itself. If the user opts to use the update limitvia check box 416, then the sharing engine does not call upon an RSSprovider 128 to access the feed source for the subscription unless thettl has expired.

In FIG. 5, a dialog box 500 is displayed via the user interface 118 toallow the user to define configuration options regarding syndicationfeed subscriptions for a syndication feed account. This same accountmanager 120 also allows the user to set up accounts for acquiringelectronic mail messages, so that the user can choose to interact with asingle account manager 120 in order to acquire both types of electronicinformation. The user selects tab 502 to set up one or more accounts foracquiring electronic mail messages and selects tab 504 to set up anaccount for acquiring syndication feed items.

Each syndication feed subscription to be entered under tab 504corresponds to a particular syndication feed source. As shown, the useris setting up subscriptions for RSS feeds. However, it will beappreciated that other syndication feeds in addition to RSS feeds mayalso be included, such as versions of Atom and other feed types. Theuser begins by selecting the RSS subscriptions tab 504 and then usestoolbar 505 to add new subscriptions or to change or remove existingsubscriptions. Selection of toolbar 505 causes the dialog box 400discussed above to be provided so that the custom configuration optionscan be set by the user. A table 506 and by then checking each of thedesired syndication subscriptions of the listing 508 to “ESPN com” isshown after it has been configured according to FIG. 4. Dialog box 500also provides the name of the delivery folder 510, the path 512 for thedelivery store, and button 514 for allowing the user to change thedelivery folder.

After having added syndication subscriptions, the user may then includethe syndication subscriptions in a send/receive group of the informationworkflow application 116 that is used by the synchronization manager 122to access the feeds automatically. The send/receive group includes oneor more accounts in a group where there is an attempt to send, ifappropriate, and receive new messages for all the specified sources ofmessages. So, as shown in FIG. 6, the user interface 118 may provide adialog box 600 that allows the user to choose the syndicationsubscriptions account 604 from a list 602 of accounts. The user may thenchoose to include syndication subscriptions in the send/receive group bychecking the box 606 and by then checking each of the desiredsyndication subscriptions of the listing 608 that have been previouslyset up as shown in FIGS. 4 and 5.

Once the user has specified the syndication subscription detailsincluding the user-defined configuration options, this information isthen made accessible by the synchronization manager 122. Thesynchronization manager 122 determines whether it is time to synchronizeany of the electronic mail message sources or any of the syndicationfeed subscriptions. This determination may be made for syndication feedsubscriptions based solely on the update limit provided by the user oralso based on a default update threshold set by the syndication feeditself when it is accessed for the first time. This determination isdiscussed below with reference to FIG. 2B.

Once the synchronization manager 122 determines that it is time tosynchronize an account corresponding to electronic mail messages, thesynchronization manager 122 instantiates a task to complete the downloadof any new electronic mail messages. This task triggers the protocolmanager 124 to activate one or more protocols that are available toacquire electronic mail messages. For example, the user may have set upan account 136 that utilizes the Exchange® mail protocol, provided byMicrosoft Corp. of Redmond, Wash., an account 138 that uses an InternetMessage Application Protocol (IMAP) protocol, and/or an account 140 thatuses a Post Office Protocol (POP). The protocol is then utilized toaccess a message server 204 over a network 202, such as a local areanetwork (LAN) or the Internet.

Upon acquiring the new set of electronic mail messages from the messageserver 204, the protocols 136, 138, 140 submit the electronic mailmessage to the electronic mail message store 132, and particularly to amail folder 134 such as the Inbox. Once in the mail folder 134,automatic message processing 130 may be applied to the electronic mailmessages, such as applying specific user-defined mail rules forforwarding, deleting, moving, etc., as well as providing any additionalautomatic processing including application-defined mail rules such asphishing detection The automatic message processing 130 is activatedupon the electronic mail messages placed into the mail folder 134 byhaving a particular flag set for the indicating that the message issubject to the automatic message processing 130. Additionally, the userinterface 118 may display the electronic mail messages such as bydisplaying header information in a folder view and displaying thecontents of the electronic mail message in an inspector window or apreview pane. Such display by the user interface 118 is discussed belowin relation to FIG. 8.

Once the synchronization manager determines that it is time tosynchronize an account that includes syndication feeds and any othersources of information (e.g., WebCals or SharePoint sites), thesynchronization manager 122 instantiates a task to complete the downloadof any new syndication feed items or other information. This tasktriggers the sharing engine 126 to call upon an RSS Provider 128 foreach of the syndication feeds and call upon any other sharing providers142 that may be necessary for any of the other information sources.Further discussion is limited to the acquisition of the syndicationfeeds as the other sources of information such as WebCals or SharePointsites and sharing providers 142 are beyond the scope of this document.

Once called, the RSS Provider 128 submits a request through the network206, which may be the same network as network 202 or may be different,to syndication feed server 208. The request is for the feeds specifiedby the user in the account manager 120 as previously discussed. The feeddocuments, typically in the extensible mark-up language (XML) format,are returned to the RSS Provider 128 where they are stored in a localdirectory 144, such as one that is specifically for temporary Internetfile storage. Syndication feed enclosures may also be obtained via theRSS Provider 128 from the syndication feed server 208.

The RSS Provider 128 then processes the documents to produce items to beplaced in the message store 132 in the delivery location specified bythe user in the account manager 120. The RSS Provider 128 parses thefeed documents to find each individual syndication item that may becontained within them, such as by looking for the “item” tags in thedocument. The RSS Provider 128 converts these syndication feed itemsthat are extracted from the feed documents by applying a mapping of thefeed document contents to a format compatible with the user interface118 of the information workflow application, such as a MAPI-compliantmessage item. During the conversion, the RSS Provider may also translatethe syndication feed enclosures into attachments for the convertedsyndication feed items and may also download the full article as anattachment if the user has selected either or both of these options. TheRSS Provider 128 then places the converted syndication feed items in thedesignated delivery location, such as the normal mail folder 134, e.g.,the Inbox, along with the electronic mail messages that have also beenacquired. Details regarding the RSS Provider 128 are discussed below inrelation to FIG. 3.

Once the converted syndication feed items have been placed in the mailfolder 134 or other location of the electronic mail message store 132,automatic message processing 130 may be applied to the convertedsyndication feed items. The RSS Provider 128 may be configured to setthe special flag that triggers the application of the automatic messageprocessing 130 to each of the converted syndication feed items as ifthey were regular electronic mail messages, such as by applying specificuser-defined mail rules for forwarding, deleting, moving, etc., as wellas other automatic message processing including application-defined mailrules such as phishing detection.

Additionally, the user interface 118 may display the convertedsyndication feed items such as by displaying header information in afolder view and displaying the contents of the converted syndicationfeed items including any converted attachments in an inspector window ora preview pane. As noted above, such display by the user interface 118is discussed below in relation to FIG. 8.

FIG. 2B shows an operational flow that may be performed by theinformation workflow application 116 when employing the synchronizationmanager 122 and RSS Provider 128 as discussed above. The synchronizationmanager 122 may implement a query operation 210 to determine whether thesynchronization time has arrived for the electronic mail messageaccounts and the syndication feed account of a particular send/receivegroup. If the synchronization time has arrived, then the protocolmanager dictates that the protocols corresponding to the electronic mailmessage accounts access the electronic mail message source 204 at mailoperation 220. Then the electronic mail messages that are received areprocessed such as by storing them in the folder 134 or displaying themwithin the user interface 118 at processing operation 240.

Returning to query operation 210, if the synchronization time hasarrived for the send/receive group that includes the syndication feedsubscriptions, then the synchronization manager 122 instantiates a taskto cause the sharing engine 126 to proceed. The sharing engine thendetects whether the ttl is being respected on an individual subscriptionbasis for each of the RSS subscriptions at query operation 320. If not,then the sharing engine 126 proceeds with instantiating the RSS Provider128 for the particular subscription. The user may have chosen to respectthe ttl to ensure that the syndication feed content provider will nottemporarily or permanently ban the current user from accessing thesyndication feeds, and in that case the sharing engine detects that thettl value is being respected at query operation 320.

Where the ttl value is being respected, the sharing engine 126implements query operation 235 to determine whether the ttl value for agiven syndication feed has expired since the last time that particularsyndication feed was polled. If the ttl value has not expired, then thesharing engine 126 simply does not call upon an RSS Provider 128 for theparticular syndication feed for which the ttl value has not expired.However, upon the occurrence of a synchronization time occurring atquery operation 210 where the ttl value has expired as found at queryoperation 235, then operational flow proceeds.

In that case, the sharing engine calls upon the RSS Provider 128 forthat particular feed for which the ttl value has expired. The RSSProvider 128 then accesses the syndication feed source at feed operation250 and extracts the syndication items from the feed at extractionoperation 260. The RSS Provider 128 then converts the syndication feeditems to the format compatible with the user interface 118 at conversionoperation 270, including setting the flag to trigger automatic messageprocessing.

Prior to completing the automatic message processing, a couple of checksmay be made by the RSS Provider 128 regarding whether further downloadprocessing for the message item is necessary. Query operation 275detects whether the user has opted to have enclosures be automaticallydownloaded and if so, then those enclosures are obtained from the sourceand are converted to attachments to the converted message item atattachment operation 280. Query operation 285 detects whether the userhas opted to have the full article be automatically downloaded as anattachment and if so, then the full article is obtained from the sourceand is included as an attachment to the converted message item atattachment operation 290. Then the converted syndication feed items areautomatically processed at processing operation 295, such as by applyingthe user-defined and/or application-defined mail rules to place theitems into the electronic mail message store 132, forward the items,etc. and the items may then be handled by the user via the userinterface 118 to have the items displayed, flagged, and so on.

An example of the RSS Provider 128 and its components are shown in moredetail in FIG. 3. The components include the RSS Provider component 302that is called by the sharing engine 126 in order to activate asynchronization component 304 and an RSS Mapping component 306 andprovide the data necessary for the particular feed to be accessed andthe feed items to be converted. There are 3 sections of sync Meta datarelating to each RSS feed.

The first is a SharingRelationshipContext for a feed. Once created, theunique ShareID (GUID) is assigned. The context contains bindings betweenthe remote source path and the local delivery folder that has beenspecified. The ShareID GUID is used by the Synchronization component 304to synchronize to the remote RSS feed items 308.

The next is a Hash Value table which is stored in the context for allitems in a feed. The associated message stores the binary property whichis an array of the hash-values. The properties can be (PR_RSS_HASHTABLE,PT_BINARY), (PR_RSS_HASTABLE_SIZE, PT_LONG).

The third is the Last Sync Time which is also stored in the context foreach feed. The synchronization component 304 will record the most recentsync time (FILETIME) whenever a feed is downloaded. The last sync timeand sync frequency configuration data of a feed, such as the ttlspecified by the feed source, are used to control the feed downloadingprocess.

The information workflow applicatoin may be a read-only syndication feedaggregator so the replication may be in only one direction: downloadfrom the remote to local. Synchronization component 304 and RssMappingcomponent 306 work together to download the remote RSS feed content(XML), parsing the XML and mapping it into the electronic mail messageitem format for storage in the electronic mail message store 132.

According to this embodiment, to prevent duplicate feed items from beingstored after each of the synchronization calls, the RSS provider 302uses the combination of the item's unique GUID, if provided by thecontent provider, and the hash value based on the item contents to avoiddelivering duplicates to the delivery folder. Hash values are calculatedfor every RSS item that is downloaded. In the case that the RSS item wasnot assigned a GUID tag value by the content provider, it is insteaduniquely identified based only on its hash value. In the case that thecontent provider did provide a GUID tag value, the RSS item is uniquelyidentified using that GUID but the hash value is also stored for it sothat, if that item is later modified, the original item will beoverwritten with the new data (and be marked as unread) rather thandiscarding the new data due to the perception that the item is aduplicate.

In summary, a feed can be synced in various ways via the RSS Provider128, including an RSS feed update when a feed is added to the RSSsubscription list for the first time, a feed is scheduled to sync by asend/receive group, and a manually forced synchronization such as byhitting F9 or some other hotkey defined as triggering synchronizationfor the information workflow application 116.

The translation of a syndication feed item to a format compatible withthe user interface 118, e.g., an OUTLOOK® post message type, consists of3 parts: defining the lexical form to follow, i.e., what XML elements tolook for and what values to collect, defining an XML parser callbackfunction for an XML parser API to return the parsing result as specifiedin the RSS Mapping component 306, and defining a syndication feed itemformat to electronic mail message item type Mapping Table.

The mapping table mechanism of RSS Mapping component 306 provides themaximum flexibility to ensure a schema mapping change can beaccomplished by adding/removing the mapping table entry rather than codechanges. For each supported RSS item field, there is a mapping entrydefined in the table. As one example, the mapping entry structure may bedefined as follows: struct RssMapEntry {  ULONG ulPropTag; // mapiproptag  ULONG ulType; // type for MAPINAMEID prop  MAPINAMEIDpropnameid; // nameid prop  const WCHAR* wzRssField; // rss field name ULONG ulDefault; // default value  int iMaxLen; // max length in wchar,−1 N/A  UINT uiFlags; // flags  PFNSetProp pfnSetProp;// custom Rss −>Outlook accessor }; The uiFlags can be defined as:  RSS_DEFAULT RSS_REQUIRED  RSS_CALCULATED  RSS_NAMEPROP

The iMaxLen is a limit of a user input string length if applied. Ifparser returns a string longer than the property expects, the stringwill be chopped at the wz[iMaxLen]. typedef HRESULT(RssAsyncMap::*PFNSetProp) ( LPSPropValue pmval, ULONG ulPropTag, WCHAR*pwzValue); HRESULT RssAsyncMap::SetPropLong( LPSPropValue pmval, ULONGulPropTag, WCHAR* pwzValue); HRESULT RssAsyncMap::SetPropGuid(LPSPropValue pmval, ULONG ulPropTag, WCHAR* pwzValue); HRESULTRssAsyncMap::SetPropFTime( LPSPropValue pmval, ULONG ulPropTag, WCHAR*pwzValue); HRESULT RssAsyncMap::SetPropWz( LPSPropValue pmval, ULONGulPropTag, WCHAR* pwzValue);

Upon the converted syndication feed item being submitted to the messagestore 132, the automatic message processing may be applied. Theautomatic message processing applied to the converted syndication feeditems as well as the electronic mail messages may include user-definedmail rules as well as processing that automatically occurs without beingdefined by the user such as application-defined mail rules. To furtherillustrate how the user-defined mail rules may be established forapplication to the converted syndication feed items, FIG. 7 is anillustrative screenshot that includes a dialog box 700 for a ruleswizard of the information workflow application 116. The rules wizardprovides one example of a listing 702 of actions that the user mayselect for the rule being created. In this example, the user hasselected the option 704 that specifies that RSS items are to be movedfrom a specific subscription delivery location that has been previouslyspecified by the user-defined configuration options to a particularfolder.

The selected rule 706 is shown in a format that allows the user toselect the variables for the rule and apply the user-defined values forthose variables. The first variable 708 is the particular RSSSubscription that this rule should apply to. By selecting the link ofvariable 708, the user can specify which RSS Subscription is to behandled according to this rule. The second variable 710 is theparticular folder that the RSS items of the particular RSS Subscriptionshould surface within from the message store. By selecting the link ofvariable 710, the use can specify which folder is to be used.

FIG. 8 shows a screenshot 800 produced by the user interface 118. Thisparticular screenshot 800 shows a listing 800 of message foldercontents, and in particular, the contents of the Inbox 802 correspondingto mail folder 134 of FIG. 2A where both electronic mail messages 806and converted syndication feed items 808 may be stored. Additionally,the screenshot 800 shows a preview pane 804 where message contents aredisplayed for either electronic mail messages or converted syndicationfeed items.

As shown, the preview pane 804 is displaying the contents of theconverted syndication feed item 808. The preview pane 804 displays theconverted syndication feed item 808 as including a title 810, aninformation bar 812 that may be selected to access the full article, aheadline 814 of the article, and a link 816 that also may be selected toaccess the full article. Thus, as electronic mail messages and convertedsyndication feed items are acquired and placed together into the Inbox802, the user can conveniently choose them from the Inbox 802 fordisplay and for performing other tasks such as flagging the message,forwarding the message, deleting the message, etc. regardless of whetherthe message of the Inbox 802 is an electronic mail message or aconverted syndication feed item.

While the invention has been particularly shown and described withreference to various embodiments thereof, it will be understood by thoseskilled in the art that various other changes in the form and detailsmay be made therein without departing from the spirit and scope of theinvention. For example, much of the discussion above has referred toRSS. However, it will be appreciated that the embodiments also apply toother syndication feed protocols including Atom where the parsing andmapping may be specific to the particular protocol being accessed.

1. A method of acquiring syndication feeds within an informationworkflow application, comprising: utilizing a synchronization manager ofthe information workflow application to establish a schedule forsynchronizing electronic mail messages of remote electronic mail messageservers and syndication feed items of remote syndication feed serverswith an electronic mail message store of the information workflowapplication; when specified by the synchronization schedule of thesynchronization manager, accessing by the information workflowapplication a syndication feed of a remote syndication feed server toobtain a syndication feed item; converting by the information workflowapplication the accessed syndication feed item to a format compatiblewith an electronic mail message user interface of the informationworkflow application; and delivering the converted syndication feed itemto the electronic mail message store.
 2. The method of claim 1, furthercomprising: displaying the converted syndication feed item that isplaced in the electronic mail message store.
 3. The method of claim 2,further comprising: when specified by the synchronization schedule ofthe synchronization manager, accessing an electronic mail message sourceto obtain an electronic mail message; and processing the electronic mailmessage to place the electronic mail message within the electronic mailmessage store.
 4. The method of claim 3, further comprising: receivinguser-defined mail rules within the information workflow application forhandling electronic mail message items and converted syndication feeditems; and employing automatic processing to apply at least one of theuser-defined mail rules and application-defined mail rules within theinformation workflow application to handle the converted syndicationfeed items.
 5. The method of claim 3, wherein the electronic mailmessage store includes a mail folder, and wherein the convertedsyndication feed item and the electronic mail message are placed intothe mail folder.
 6. The method of claim 1, wherein the syndication feedthat includes the syndication feed item is in a really simplesyndication (RSS) protocol or an Atom protocol.
 7. The method of claim1, wherein accessing the syndication feed comprises checking a thresholdinterval for the syndication feed and accessing the syndication feedonly if the threshold interval has been exceeded since a precedingaccess of the syndication feed.
 8. The method of claim 1, wherein theformat compatible with the electronic mail message user interface is aMAPI message type.
 9. The method of claim 1, wherein converting thesyndication feed item comprises: determining whether an option has beenset for downloading of enclosures and if so then converting an enclosureof the syndication feed item to an attachment within the convertedsyndication feed item; and determining whether an option has been setfor downloading of full articles and if so then downloading a fullarticle associated with the syndication feed item and including the fullarticle as an attachment within the converted syndication feed item. 10.A computer readable medium having computer-executable instructionsencoded thereon for performing steps comprising: providing aninformation workflow application having an account manager forestablishing an electronic mail message account and a syndication feedaccount, the syndication feed account specifying a set of syndicationfeeds and a delivery location for each syndication feed where thedelivery location is within an electronic mail message store of theinformation workflow application; in accordance with the syndicationfeed account, accessing each syndication feed to obtain syndication feeditems for each syndication feed; converting the syndication feed itemsinto a format that is compatible with an electronic mail message userinterface of the information workflow application; delivering thesyndication feed item to the delivery location of the electronic mailmessage store of the information workflow application in accordance withthe syndication feed account; and displaying the syndication feed itemwithin the electronic mail message user interface of the informationworkflow application
 11. The computer readable medium of claim 10,wherein the computer executable instructions are for performingadditional steps comprising: in accordance with the electronic mailmessage account, accessing an electronic mail message source associatedwith the electronic mail message account to obtain an electronic mailmessage; in accordance with the electronic mail message account, placingthe electronic mail message in the electronic mail message store of theinformation workflow application; and displaying the electronic mailmessage within the electronic mail message user interface of theinformation workflow application.
 12. The computer readable medium ofclaim 11, wherein the electronic mail message store comprises a mailfolder, wherein processing the converted syndication feed item comprisesplacing the converted syndication feed item in the mail folder, andwherein processing the electronic mail message comprises placing theelectronic mail message in the mail folder.
 13. The computer readablemedium of claim 12, wherein the syndication feed item is in a reallysimply syndication (RSS) protocol or an Atom protocol.
 14. The computerreadable medium of claim 13, wherein the format that is compatible withthe electronic mail message user interface comprises a messagingapplication programming interface (MAPI) message type.
 15. The computerreadable medium of claim 14, wherein the information workflowapplication further includes a synchronization manager, wherein thesyndication feed account further specifies an update setting for eachsyndication feed, and wherein the synchronization manager synchronizesthe electronic mail message store with the syndication feed resources inaccordance with the update setting for each syndication feed.
 16. Acomputer system comprising: a display; a network connection; a storagedevice that is organized into a plurality of logical portions, one ofthe logical portions comprising an electronic mail message store; aprocessor executing instructions to instantiate an information workflowapplication that includes an electronic mail message user interface,wherein the information workflow application instantiates tasks toaccess a syndication feed source through the network connection toobtain a syndication feed item, access an electronic mail message sourceto obtain an electronic mail message, convert the syndication feed iteminto a format that is compatible with the electronic mail message userinterface, and deliver the converted syndication feed item and theelectronic mail message to an electronic mail message store.
 17. Thecomputer system of claim 16, wherein the message store includes a mailfolder and wherein the converted syndication feed item and theelectronic mail message are delivered into the mail folder.
 18. Thecomputer system of claim 16, wherein the information workflowapplication includes a synchronization manager that performssynchronization to periodically and without user intervention check thesyndication feed source and the electronic mail message source for newsyndication feed items and new electronic mail messages.
 19. Thecomputer system of claim 18, wherein the information workflowapplication includes an account manager, wherein the account managerincludes an account for syndication feeds where the account specifies auser-defined delivery location for each syndication feed that is withinthe electronic mail message store and specifies a user-definedsynchronization period, and wherein the synchronization manager utilizesthe synchronization period for checking the electronic mail messagesource only if a default synchronization threshold has been exceededsince the last attempt at synchronization with the syndication feedsource.
 20. The computer system of claim 19, wherein the syndicationfeed source is in the really simple syndication (RSS) protocol or anAtom protocol.